package com.atguigu.scala.chapter5

/**
 * @author lizikuan
 * @date 2021/5/21 16:36
 */
/**
 * 递归: 自己调用自己
 *   满足两个条件才能称之为递归:
 *       1、必须要有退出条件
 *       2、必须定义返回值类型
 * 定义递归函数的时候必须指定函数的类型
 */
object $04_Recursion {
  def main(args: Array[String]): Unit = {
    println(func(6))
    println(m1(5))
  }

  val func:Int=> Int = (n:Int) => {
      if(n==1) 1
      else n * func(n-1)
  }

  def m1(n:Int):Int = {
      if (n==1) 1
      else n * m1(n-1)
  }
}


